package net.zio.kamenriderzioaddon.ridersystem.registry;

import java.util.HashMap;
import java.util.Map;

/**
 * 骑士配置注册表，用于全局访问骑士配置
 */
public class RiderConfigRegistry {
    private static final Map<String, BaseRiderConfig> REGISTRY = new HashMap<>();

    /**
     * 获取所有注册的骑士配置
     *
     * @return 所有注册的骑士配置
     */
    public static Map<String, BaseRiderConfig> getAllConfigs() {
        return new HashMap<>(REGISTRY);
    }

    /**
     * 注册骑士配置
     *
     * @param config 骑士配置对象
     */
    public static void register(BaseRiderConfig config) {
        REGISTRY.put(config.getRiderName(), config);
    }

    /**
     * 根据骑士名称获取对应的配置
     *
     * @param riderName 骑士名称
     * @return 对应的配置
     */
    public static BaseRiderConfig getConfig(String riderName) {
        return REGISTRY.get(riderName);
    }

    /**
     * 根据骑士名称获取完整配置
     *
     * @param riderName 骑士名称
     * @return 完整配置
     */
    public static FullRiderConfig getFullConfig(String riderName) {
        BaseRiderConfig config = REGISTRY.get(riderName);
        return (config instanceof FullRiderConfig) ? (FullRiderConfig) config : null;
    }
}